perm filename SUBR.F4[TCH,LCS] blob sn#172846 filedate 1975-08-10 generic text, type T, neo UTF8
00100	C*****  THIS ROUTINE DIVIDES OCTAVE INTO ANY NUMBER OF EQUAL PARTS
00200	
00300		SUBROUTINE SUBR
00400		COMMON /INS/ INST(27),BG(60)
00500		COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
00600	C   INUM=INST#  IPAR=PARAM#  
00700	C   BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
00800	C   IF IREST IS <0, THAT NOTE WILL BE A REST.  
00900	C   INST=INST. NAME,  BG=INSTS' BEGIN TIMES.
01000	C   NOTE #S IN SUBROUTINE: (1-84)  C4=37  FS4=43  C5=49  ETC.
01100	C   F1=86  F15=100 (NO F16!)
01200	
01300	C   CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
01400		X=P(3)
01500		IF(PL(3).EQ.1)GO TO 1
01600		IF(P(12).EQ.0)X=IFIX(X)
01700	C  FOR RAND NOTES TO PRINT OUT FREQS.
01800		X=30.8677*2**(X/12)
01900	C  X=FREQ. IN HZ. BASED ON NOTE # IN P3.
02000		PL(3)=1.
02100	C  THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
02200	1	P(3)=X*2**(P(11)/P(12))
02300	C  P12=# OF DIVISIONS OF THE OCTAVE.  P11=CHROMATIC STEP IN THAT DIV.
02400		RETURN
02500		END
02600	
02700	C   STEPS  ; TYPICAL INPUT FOR MICROTONE SUBROUTINE.
02800	C   CLAR  /P2 .3/P3 A3/P4 1000;
02900	C   P11 NUM/0/1/2/3/4/5/6/7/8/9/FINE*;
03000	C   P12 9 SUBR/END;  OCTAVE IS DIVIDED INTO 9 PARTS.